﻿namespace Vibstudio.NetConfigurator.Globalization
{
    using System.Collections.Generic;

    public interface ILabeler
    {
        // Label & ToolTips
        Label BackupFiles { get; }
        Label ApplicationsFile { get; }
        Label ConfigurationsFile { get; }
        Label ConfigurationFile { get; }
        Label ChooseApplicationsPathToConfigure { get; }
        Label ChooseApplicationsPathToCompose { get; }
        Label ChooseApplicationsPathToAutoCompose { get; }
        Label RunConfiguration { get; }
        Label RunComposition { get; }
        Label GoToHome { get; }
        Label ValidateUrl { get; }
        Label Application { get; }
        Label Configuration { get; }
        Label Composition { get; }
        Label Outcome { get; }
        Label Message { get; }
        Label Url { get; }
        Label ConfigurationMode { get; }
        Label CompositionMode { get; }
        Label InvalidURI { get; }
        Label RunAutoComposition { get; }

        // Converter messages
        Label SuccessfulConfiguration { get; }
        Label SuccessfulComposition { get; }
        Label SuccessfulValidation { get; }
        Label PartialConfiguration(int percentage);
        Label PartialComposition(int percentage);
        Label PartialValidaton(int percentage);
        Label ConfigurationNotPerformed { get; }
        Label CompositionNotPerformed { get; }
        Label ValidationNotPerformed { get; }

        // Exception messages
        Label OperationNotExecutable { get; }
        Label DirectoryNotFound { get; }
        Label FileNotFound(string fullPath);
        Label FileNotFoundInDirectory();
        Label FileNotFoundInDirectory(string path);
        Label FileNotFoundInDirectory(string file, string path);
        Label FileNotFoundInDirectory(string file, string rootPath, string folderName);
        Label FirstFileConfiguredSuccessfully(string path, int count);
        Label UnknownConfigurator(string configuratorName = "");
        Label UnknownComposer(string composerName = "");
        Label AutocompositionAlreadyPerformed(string compositionName = "");
        Label ApplicationNotReference(string applicationName = "");
        Label CompositionPartiallyPerformed(IEnumerable<string> unconfiguredSettings);
        Label BasePathNotSpecified { get; }
    }
}
